<?php 
namespace Home\Controller;
use Common\Model\Article;
use Common\Model\Category;
use Common\Model\ArcTag;
use Common\Model\Tag;
/**
 * 列表页控制器
 */
	class ListsController extends CommonController{
//		创建构造函数
		public function __init(){
			
//			继承父级的构造函数
			parent::__init();
		}
		
//		显示页面
		public function index(){
//			获取get过来的cid(列表信息)
			$cid=Q('get.cid',0,'intval');
//			获取get过来的tid(标签信息)
			$tid=Q('get.tid',0,'intval');
//			文章表
			$article=new Article;
//			分类表
			$category=new Category;
//			标签中间表
			$arctag=new ArcTag;
//			如果点击的是顶部分类
			if($cid){
//				就要获取顶部信息
				$dingdata=array(
//					获取分类的名字
					'typename'=>$category->where('cid',$cid)->pluck('cname'),
//					获取文章的数量
					'arcnum'=>$article->where("category_cid={$cid} AND is_recycle=0")->count(),
					'type'=>'分类'
				);
				
//			因为要获取这一分类里面的所有数据，所以也要获取子级里面的数据
//			先获取这个分类表中的所有数据
			$catedata=$category->get();
//			在获取子级里面的数据
			$cids=$category->getSon($catedata, $cid);
//			再把自己给压进去
			$cids[]=$cid;
//			以,号分隔
			$str=implode(',', $cids);
//			关联获取文章表里面的文章所对应的分类，条件：这个分类数组有没有对应的文章
			$data=$article->join('category','category_cid','=','cid')->where("category_cid IN (".$str.") AND is_recycle=0")->orderBy('sendtime','DESC')->get();
			
			foreach($data as $k=>$v){
				$data[$k]['tag']=$arctag->join('tag','tag_tid','=','tid')->where('article_aid',$v['aid'])->lists('tid,tname');
			}
//			p($data);die;
		}
//		如果是点击的标签
		if($tid){
			$tagModel=new Tag;
//			头部
			$dingdata=array(
//				标签名称
				'typename'=>$tagModel->where('tid',$tid)->pluck('tname'),
//				标签对应的文章数量
				'arcnum'=>$article->join('article_tag','aid','=','article_aid')->where("tag_tid={$tid} AND is_recycle=0")->count(),
//				类型
				'type'=>'标签'
			);
			
//			获取标签对应的所有文章的id
			$aids=$arctag->where('tag_tid',$tid)->lists('article_aid');
			
//			获取文章
			if($aids){
			$data=$article->join('category','category_cid','=','cid')->where("aid In (".implode(',', $aids).") AND is_recycle=0")->orderBy('sendtime','DESC')->get();
			}else{
				$data=array();
			}
//			压入标签内容
			foreach($data as $k=>$v){
				$data[$k]['tag']=$arctag->join('tag','tag_tid','=','tid')->where('article_aid',$v['aid'])->lists('tid,tname');
			}
		}
		
		View::with('dingdata',$dingdata);
		View::with('data',$data);
//		载入模板
		View::make();
    	}		
		
	}


 ?>